package com.gis.visualization;

import java.util.*;

public class LeetCodeDemo2 {


    public static void main(String[] args) {
//        Set<Character> set = new HashSet<>();
//        String str = "abcdefgaaaaabbbccc";
//        char[] newChar = str.toCharArray();
//        for (char c : newChar) {
//            set.add(c);
//        }
//        System.out.println(set.size());

//        int size = 0;
//        if (s.length() == 1) {
//            System.out.println(1);
//            return;
//        }
//        Map<Character, Integer> map = new HashMap<>();
//        char[] chars = s.toCharArray();
//        for (int i = 0; i < chars.length; i++) {
//            if (map.containsKey(chars[i])) {
//                size = Math.max(size,map.size());
//                map.clear();
//            }
//            map.put(chars[i], i);
//        }
//        System.out.println(Math.max(size,map.size()));
        String s = " ";
        int size = 0;
        char[] chars = s.toCharArray();
        Set<Character> occ = new HashSet<>();
//        左指针向右移动，set集合中删除一个元素
//        右指针向右移动，set集合中添加一个元素
        char a,b;
        a = chars[0];
        b = chars[0];
        int index = 0;
        for (int i = 0; i < chars.length; i++) {
            if(i!=0){
                occ.remove(a);
                a = chars[i];
            }
//            不断向右移
            while (!occ.contains(b)){
                occ.add(b);
                if(index == chars.length - 1){
                    break;
                }
                b = chars[++index];
            }
            size = Math.max(size,occ.size());
        }
        System.out.println(size);
    }
}
